Object oriented programming is a computer programming packaging technique which provides reusable and easily expandable programs. In a traditional procedural program, emphasis is placed on methods to be conducted on particular data sets. By contrast, in an object oriented program, emphasis is placed on data. As is well known to those having skill in the art of object oriented programming, object oriented programs are composed of various types of "objects".
An object is a data structure, also referred to as a "frame", and a set of operations or functions, also referred to as "methods", for accessing and manipulating the data structure. Objects having identical data structures and common behavior can be grouped together into, and collectively identified as a "class." Objects are instances created from a particular class. Each object inherits the data structure and methods of the particular class from which it was instantiated. A hierarchical inheritance relationship exists between multiple classes. For example, one class may be considered a "parent" of another class (the "child" of the parent class). The child class is said to be "derived" from the parent class and inherits all of the attributes and methods of the parent class.
Increasingly, developers are utilizing a team approach in developing object oriented program applications. Component-based development is quickly becoming the focus of many new development efforts. In this type of development, team members working on an application share components stored in libraries to build applications. Components are basically encapsulated software objects, or specifications capable of creating such objects, providing some type of known service that can be used in combination with other components to build applications.
TeamConnection is a software product of International Business Machines, Inc. that provides a team development environment that includes the following: configuration management; version management; change management; and build support for developing multi-tier, multi-language applications across platforms. TeamConnection provides a single repository for development data including reusable parts such as JavaBeans and ActiveX, source code such as C++, COBOL and Java, web applets, HTML documents, end user documentation, test cases, and modeled objects. Envy is another software product of International Business Machines, Inc. that provides a multi-user development environment for application development using the object oriented programming languages Smalltalk and Java. Envy provides version control and configuration management for multiple developers across several platforms.
Envy and TeamConnection individually facilitate parallel development involving multiple developers. Each provides various mechanisms for allowing developers to access the same objects or components in a corresponding library at the same time without negatively affecting the work of others. Each also mediates changes made to objects by multiple developers and for controlling the versions of objects stored in the library.
It would be desirable to allow developers working in TeamConnection to be able to use components from an Envy library. Unfortunately, the schemas that Envy and TeamConnection use for version control and configuration management are substantially different from each other. As a result, exporting and importing Envy components between TeamConnection and Envy has heretofore not been possible because of these different schemas. Furthermore, objects stored in a TeamConnection library may be different types of objects than objects stored in an Envy library. For example, objects stored in a TeamConnection library may be C++ objects, whereas objects stored in an Envy library may be Java objects. Applications built in TeamConnection using objects from the TeamConnection library may have difficulty understanding and utilizing objects from an Envy library.